<?php
/*
 * Evaluacion DAL.
 * @Autor: Andrés Ubilla.
 */
class EvaluacionAntropometricaDAL {
    
    public static function grabar($oEvaluacion){
        
        try{
            $arr = array(
                        "{#FECHA}" => $oEvaluacion->getFecha(),
                        "{#PESO}" => $oEvaluacion->getPeso(),
                        "{#TALLA}" => $oEvaluacion->getTalla(),
                        "{#CCOMBLIGO}" => $oEvaluacion->getCcombligo(),
                        "{#ACTIVIDADFISICA}" => $oEvaluacion->getActividadFisica(),
                        "{#IMC}" => $oEvaluacion->getImc(),
                        "{#PUNTUACIONZIMC}" => $oEvaluacion->getPuntuacionZImc(),
                        "{#PERCENTILIMC}" => $oEvaluacion->getPercentilImc(),
                        "{#VERBALIMC}" => $oEvaluacion->getVerbalImc(),
                        "{#TRICEPS}" => $oEvaluacion->getTriceps(),
                        "{#BICEPS}" => $oEvaluacion->getBiceps(),
                        "{#SUBESCAPULAR}" => $oEvaluacion->getSubEscapular(),
                        "{#CRESTAILIACA}" => $oEvaluacion->getCrestaIliaca(),
                        "{#SUPRAESPINAL}" => $oEvaluacion->getSupraEspinal(),
                        "{#ABDOMINAL}" => $oEvaluacion->getAbdominal(),
                        "{#MUSLOANTERIOR}" => $oEvaluacion->getMusloAnterior(),
                        "{#PANTORRILLAMEDIAL}" => $oEvaluacion->getPantorrillaMedial(),
                        "{#PECTORAL}" => $oEvaluacion->getPectoral(),
                        "{#PLIEGUES}" => $oEvaluacion->getPliegues(),
                        "{#PUNTUACIONZPLIEGUES}" => $oEvaluacion->getPuntuacionZPliegues(),
                        "{#PERCENTILOPLIEGUES}" => $oEvaluacion->getPercentiloPliegues(),
                        "{#VERBALPLIEGUES}" => $oEvaluacion->getVerbalPliegues(),
                        "{#PORCENTAJEGRASO}" => $oEvaluacion->getPorcentajeGraso(),
                        "{#KGGRASA}" => $oEvaluacion->getKgGrasa(),
                        "{#KGGRASAMAGRA}" => $oEvaluacion->getKgGrasaMagra(),
                        "{#PUNTUACIONZGRASA}" => $oEvaluacion->getPuntuacionZGrasa(),
                        "{#PERCENTILOGRASA}" => $oEvaluacion->getPercentiloGrasa(),
                        "{#VERBALGRASA}" => $oEvaluacion->getVerbalGrasa(),
                        "{#BRAZORELAJADO}" => $oEvaluacion->getBrazoRelajado(),
                        "{#BRAZOFLEXIONADO}" => $oEvaluacion->getBrazoFlexionado(),
                        "{#CINTURAMINIMA}" => $oEvaluacion->getCinturaMinima(),
                        "{#CADERASMAXIMO}" => $oEvaluacion->getCaderasMaximo(),
                        "{#MUSLOMEDIAL}" => $oEvaluacion->getMusloMedial(),
                        "{#PANTORRILLAMAXIMO}" => $oEvaluacion->getPantorrillaMaximo(),
                        "{#KGMUSCULO}" => $oEvaluacion->getKgMusculo(),
                        "{#PORCENTAJEMUSCULO}" => $oEvaluacion->getPorcentajeMusculo(),
                        "{#PUNTUACIONZMUSCULO}" => $oEvaluacion->getPuntuacionZMusculo(),
                        "{#PERCENTILOMUSCULO}" => $oEvaluacion->getPercentiloMusculo(),
                        "{#VERBALMUSCULO}" => $oEvaluacion->getVerbalMusculo(),
                        "{#PORCENTAJEGRASODESEADO}" => $oEvaluacion->getPorcentajeGrasoDeseado(),
                        "{#PESOIDEAL}" => $oEvaluacion->getPesoIdeal(),
                        "{#PESODISMINUIR}" => $oEvaluacion->getPesoDisminuir(),
                        "{#GASTOENERGETICO}" => $oEvaluacion->getGastoEnergetico(),
                        "{#GASTOENERGETICOTOTAL}" => $oEvaluacion->getGastoEnergeticoTotal(),
                        "{#COMENTARIO}" => $oEvaluacion->getComentario(),
                        "{#IDPACIENTE}" => $oEvaluacion->getIdPaciente()
                    );
            $query = Util::getQuery($arr, EvaluacionAntropometricaSQL::$REGISTRAR_EVALUACION);
            $arrDatos = Bd::exec($query);           
            $id = Bd::$IDENTITY;

            return $id;
        } catch (Exception $e){
            throw new Exception($e->getMessage());
        }
    }
    
    //METODO PARA LISTAR EVALUACIONANTROPOMETRICA.
    public static function listarPorId($idPaciente){
        try{
            $arr = array("{#IDPACIENTE}" => $idPaciente);
            
            $query = Util::getQuery($arr, EvaluacionAntropometricaSQL::$LISTAR_EVALUACIONANTROPOMETRICA_POR_IDPACIENTE);
            $arrDatos = Bd::exec($query);
            $arrEvaluacionantropometrica = array();

            if (count($arrDatos) > 0) {
                foreach ($arrDatos as $row) {
                    $oEvaluacionantropometrica = new EvaluacionAntropometrica();

                    $oEvaluacionantropometrica->setId(is_null($row["id"]) ? 0 : $row["id"]);
                    $oEvaluacionantropometrica->setFecha(is_null(Util::fechaDateTimeANormal($row["fechaEvaluacion"])) ? "" : Util::fechaDateTimeANormal($row["fechaEvaluacion"]));
                    $oEvaluacionantropometrica->setPeso(is_null($row["peso"]) ? 0 : $row["peso"]);
                    $oEvaluacionantropometrica->setTalla(is_null($row["talla"]) ? 0 : $row["talla"]);
                    $oEvaluacionantropometrica->setCcombligo(is_null($row["ccOmbligo"]) ? 0 : $row["ccOmbligo"]);                   
                    $oEvaluacionantropometrica->setTriceps(is_null($row["triceps"]) ? 0 : $row["triceps"]);
                    $oEvaluacionantropometrica->setBiceps(is_null($row["biceps"]) ? 0 : $row["biceps"]);
                    $oEvaluacionantropometrica->setSubEscapular(is_null($row["subEscapular"]) ? 0 : $row["subEscapular"]);
                    $oEvaluacionantropometrica->setCrestaIliaca(is_null($row["crestaIliaca"]) ? 0 : $row["crestaIliaca"]);
                    $oEvaluacionantropometrica->setSupraEspinal(is_null($row["supraEspinal"]) ? 0 : $row["supraEspinal"]);
                    $oEvaluacionantropometrica->setAbdominal(is_null($row["abdominal"]) ? 0 : $row["abdominal"]);
                    $oEvaluacionantropometrica->setMusloAnterior(is_null($row["musloAnterior"]) ? 0 : $row["musloAnterior"]);
                    $oEvaluacionantropometrica->setPantorrillaMedial(is_null($row["pantorrillaMedial"]) ? 0 : $row["pantorrillaMedial"]);                    
                    $oEvaluacionantropometrica->setBrazoRelajado(is_null($row["brazoRelajado"]) ? 0 : $row["brazoRelajado"]);
                    $oEvaluacionantropometrica->setBrazoFlexionado(is_null($row["brazoFlexionado"]) ? 0 : $row["brazoFlexionado"]);
                    $oEvaluacionantropometrica->setCinturaMinima(is_null($row["cinturaMinima"]) ? 0 : $row["cinturaMinima"]);                    
                    $oEvaluacionantropometrica->setMusloMedial(is_null($row["musloMedial"]) ? 0 : $row["musloMedial"]);
                    $oEvaluacionantropometrica->setPantorrillaMaximo(is_null($row["pantorrillaMaximo"]) ? 0 : $row["pantorrillaMaximo"]);                   
                    $oEvaluacionantropometrica->setIdPaciente(is_null($row["idPaciente"]) ? 0 : $row["idPaciente"]);

                    $arrEvaluacionantropometrica[] = $oEvaluacionantropometrica;
                }
            }

            return $arrEvaluacionantropometrica;
            
        } catch (Excepcion $e){
            throw new Exception($e->getMessage());
        }
    }
    
    public static function calcularDistribucionNormalEstandar($col, $val){
        try{
            
            $arr = array("{#COLUMNA}" => $col, "{#VALOR}" => $val);
            $query = Util::getQuery($arr, EvaluacionSQL::$CALCULAR_DISTRIBUCION_NORMAL_ESTANDAR);
            $arrDatos = Bd::exec($query);
            
            if(count($arrDatos) > 0){
                $percentilo = null;
                foreach($arrDatos as $row){
                    $percentilo = $row["Columna"];
                }
                return $percentilo;
            }
        }  catch (Exception $e){
            throw new Exception($e->getMessage());
        }
    }
    
    public static function eliminar($id) {
        try {
            $arr = array("{#ID}" => $id);
            $query = Util::getQuery($arr, EvaluacionSQL::$ELIMINAR_EVALUACION);
            $arrDatos = Bd::exec($query);
        } catch (Exception $e) {
            throw new Exception($e->getMessage());
        }
    }
}
?>
